/**
 * Author : Jorge Mejuto Create : 27/10/2010
 */

package net.eyra.negocio.explotacion.produccion;

import java.text.SimpleDateFormat;
import java.util.List;

import net.eyra.negocio.entidades.explotacion.Lectura;
import net.eyra.negocio.entidades.explotacion.Parque;
import net.eyra.negocio.entidades.explotacion.Tarificador;
import net.eyra.utiles.XLSDao;

public class ResumenProduccionAExcel {

    private XLSDao dao = null;

    public void generarHoja(List<Parque> resumen) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
        dao = new XLSDao();
        boolean primera = true;
        for (Parque parque : resumen) {
            if (parque.getPropio().equals("S")) {
                if (primera) {
                    dao.iniciar(parque.getNombre());
                    primera = false;
                } else dao.crearHoja(parque.getNombre());
                int fila = 2;
                for (Tarificador tarificador : parque.getTarificadores()) {
                    escribirCabecera(fila, tarificador.getNombre());
                    fila += 3;
                    int x = 0;
                    for (Lectura lectura : tarificador.getLecturas_tm1()) {
                        if (x == 0) {
                            String año = sdf.format(lectura.getPeriodo()).substring(0, 4);
                            dao.escribirTexto(fila, 3, año, dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
                        }
                        dao.escribirNumeroFormateado(fila, 4 + x, lectura.getActiva_exportada(),
                                                     dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_DERECHA));
                        x++;
                        if (x == 12) {
                            x = 0;
                            fila++;
                        }
                    }
                    fila += 4;
                }
            }
        }
    }

    private void escribirCabecera(int fila, String nombre_tarificador) {
        dao.escribirTexto(fila, 2, nombre_tarificador, dao.getColor(XLSDao.COLOR_AZUL));

        for (int x = 4; x < 16; x++)
            dao.setAnchoColumna((short) x, 18);
        dao.escribirTexto(fila + 2, 4, "Enero", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 5, "Febrero", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 6, "Marzo", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 7, "Abril", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 8, "Mayo", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 9, "Junio", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 10, "Julio", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 11, "Agosto", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 12, "Septiembre", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 13, "Octubre", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 14, "Noviembre", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
        dao.escribirTexto(fila + 2, 15, "Diciembre", dao.getEstilo(XLSDao.ESTILO_ALINEADO_VERTICAL_CENTRADO, XLSDao.ESTILO_ALINEADO_CENTRO));
    }

    public void grabarFichero(String nombre_fichero) {
        dao.guardarLibro(nombre_fichero);
        dao = null;
    }
}
